﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

//	整数交换的三种方法

int main() 
{
	int a = 6;
	int b = 11;
	printf("a=%d  b=%d \n", a, b);

// 空瓶法：
	int c = 0;
	c = a;		// c = 6
	a = b;		// a = 11
	b = c;		// b = 6
	printf("交换后：\n");
	printf("a=%d  b=%d \n", a, b);

// 得和，再减：
	a = a + b;		// a == 17
	b = a - b;		// b == 17-11=6
	a = a - b;		// a == 17-6=11
	printf("交换后：\n");
	printf("a=%d  b=%d \n", a, b);

//	利用按位异或：
	a = a ^ b;		//  a^a=0; a^0=a
	b = a ^ b;		//  b= (a^b)^b = a^0 = a
	a = a ^ b;		//  a= (a^b)^a = 0^a = b
	printf("交换后：\n");
	printf("a=%d  b=%d \n", a, b);

	return 0;
}